@JsonFormat এর মাধ্যমে কাস্টম Date Format নির্ধারণ করা

Java Technologies - জ্যাকসন (Jackson) - Date এবং Time হ্যান্ডল করা
186

@JsonFormat অ্যানোটেশন ব্যবহার করে আপনি JSON ডেটা প্রক্রিয়াকরণের সময় কাস্টম Date ফরম্যাট নির্ধারণ করতে পারেন। এটি Date বা LocalDate টাইপের ফিল্ডগুলির জন্য JSON সিরিয়ালাইজ এবং ডেসিরিয়ালাইজ করার সময় নির্দিষ্ট ফরম্যাটে ডেটা দেখানোর বা গ্রহণ করার সুবিধা দেয়।


কোড উদাহরণ

Step 1: Maven Dependency

প্রথমে, Jackson লাইব্রেরি আপনার প্রোজেক্টে যোগ করুন।

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version>
</dependency>

Step 2: JSON উদাহরণ

আমাদের JSON ডেটা নিচের মতো:

{
  "name": "John Doe",
  "birthDate": "21-12-1990"
}

আমাদের ক্লাসে birthDate ফিল্ড Date টাইপের হবে এবং এটি dd-MM-yyyy ফরম্যাটে JSON থেকে ডেসিরিয়ালাইজ এবং সিরিয়ালাইজ হবে।


Step 3: Java ক্লাসে @JsonFormat ব্যবহার করা

import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

class Person {
    private String name;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")
    private Date birthDate;

    // Constructors
    public Person() {}

    public Person(String name, Date birthDate) {
        this.name = name;
        this.birthDate = birthDate;
    }

    // Getters and Setters
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "', birthDate=" + birthDate + '}';
    }
}

Step 4: JSON থেকে Java Object এবং Java Object থেকে JSON

Jackson ObjectMapper ব্যবহার করে JSON ডেটা ডেসিরিয়ালাইজ এবং সিরিয়ালাইজ করা যাবে।

import com.fasterxml.jackson.databind.ObjectMapper;

import java.text.SimpleDateFormat;
import java.util.Date;

public class JsonFormatExample {
    public static void main(String[] args) throws Exception {
        ObjectMapper objectMapper = new ObjectMapper();

        // JSON String
        String json = """
        {
          "name": "John Doe",
          "birthDate": "21-12-1990"
        }
        """;

        // JSON to Java Object (Deserialization)
        Person person = objectMapper.readValue(json, Person.class);
        System.out.println("Deserialized Object: " + person);

        // Java Object to JSON (Serialization)
        String serializedJson = objectMapper.writeValueAsString(person);
        System.out.println("Serialized JSON: " + serializedJson);
    }
}

Output

  1. Deserialization Output:
Deserialized Object: Person{name='John Doe', birthDate=Fri Dec 21 00:00:00 BDT 1990}
  1. Serialized JSON:
{
  "name": "John Doe",
  "birthDate": "21-12-1990"
}

@JsonFormat প্যারামিটার ব্যাখ্যা

  • shape: ডেটা কোন আকারে থাকবে তা নির্ধারণ করে। উদাহরণ: JsonFormat.Shape.STRING.
  • pattern: ডেটার কাস্টম ফরম্যাট নির্ধারণ করে। উদাহরণ: dd-MM-yyyy.
  • timezone: ডেটার টাইমজোন নির্ধারণ করতে ব্যবহৃত হয়। উদাহরণ: timezone = "UTC".

বিকল্পভাবে টাইমজোন সেট করা

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy", timezone = "Asia/Dhaka")
private Date birthDate;

ব্যবহার ক্ষেত্র

  1. Custom Date Formats: JSON ডেটাতে নির্দিষ্ট ফরম্যাটে তারিখ প্রদর্শন।
  2. Time Zone Adjustments: বিভিন্ন টাইমজোন হ্যান্ডলিং।
  3. Consistency: সিরিয়ালাইজ এবং ডেসিরিয়ালাইজ করার সময় তারিখের ফরম্যাট কনসিস্টেন্ট রাখা।

Jackson এর @JsonFormat ব্যবহার করে আপনি খুব সহজেই ডেটা ফরম্যাট নিয়ন্ত্রণ করতে পারেন। এটি তারিখের সাথে সম্পর্কিত JSON ডেটার প্রক্রিয়াকরণ আরও সহজ এবং কার্যকর করে তোলে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...